//////////////////////////////////////////////////////////////////////////

#ifndef _SOUNDS_H_
#define _SOUNDS_H_

#include <string>

struct Mix_Chunk;
struct _Mix_Music;
typedef struct _Mix_Music Mix_Music;

class GUI_Sounds
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////

    GUI_Sounds(const std::string& _resourcesFolder);
    ~GUI_Sounds();

    enum Sound {Shoot, Hover, Click, SoundCount};
    enum Music {Intro, Menu, Game, MusicCount};

    Mix_Chunk *GetSound(GUI_Sounds::Sound _soundName);
    Mix_Music *GetMusic(GUI_Sounds::Music _musicName);

//////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////

    void ReloadSound(GUI_Sounds::Sound _sound, const std::string& _fileName);
    void ReloadMusic(GUI_Sounds::Music _music, const std::string& _fileName);

    const std::string m_SoundsSubfolder;

    std::string m_ResourcesFolder;

    Mix_Chunk *m_Sounds[GUI_Sounds::SoundCount];
    Mix_Music *m_Musics[GUI_Sounds::MusicCount];

//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
